package com.csun.cmny.provider.dao;

import com.csun.cmny.core.mybatis.MyMapper;
import com.csun.cmny.provider.model.domain.UacGroup;
import com.csun.cmny.provider.model.dto.group.GroupQueryDto;
import com.csun.cmny.provider.model.dto.properManagement.GroupByGroupNameDto;
import com.csun.cmny.provider.model.dto.properManagement.LoginNameByGroupIdDto;
import com.csun.cmny.provider.model.vo.*;
import com.csun.cmny.util.wrapper.Wrapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;

@Mapper
@Component
public interface UacGroupMapper extends MyMapper<UacGroup> {

    /**
     * query uac group list with page
     *
     * @param groupQueryDto the group query dto
     *
     * @return the list
     */
    List<UacGroup> queryUacGroupListWithPage(GroupQueryDto groupQueryDto);

    ProperManagementLoginName selectLoginNameByGroupId(LoginNameByGroupIdDto loginNameByGroupIdDto);

    List<Long> selectHomeUserIdByGroupId(LoginNameByGroupIdDto loginNameByGroupIdDto);

    List<PropertyManagementGroupVo> selectGroups(GroupByGroupNameDto groupByGroupNameDto);

    /**
     * 查询机构列表
     *
     * @return
     */
    List<RpcGroupVo> queryGroupList();
    /*
     * 集团化查询下属养老院
     * */
    List<GroupInforVo> getAllGroup(Long groupId);

    /**
     * 查询该机构及子机构信息
     *
     * @param groupId   the group id
     *
     * @return  the rpc group vo list.
     */
    List<GroupVo> queryGroupListByGroupId(Long groupId);

    /**
     * 查询子机构信息
     *
     * @param groupId   the group id
     *
     * @return  the rpc group vo list
     */
    List<GroupVo> queryChildListByGroupId(Long groupId);
    /**
     * 查询机构类型
     * @param groupId
     * @return
     */
    List<CountVo> selectType(Long groupId);
}